The present invention relates generally to the field of computers, and specifically to a method of booting a computer to run from a device not normally supported by the operating system as a system device.
Modern personal computers have become complex, and may include a wide variety of peripheral devices and network interfaces. These devices may connect to the computer via a variety of standard interfaces, including the RS-232 Serial Port, Universal Serial Bus (USB), IEEE 1394 (also known as FireWire or i.Link), SCSI (Small Computer System Interface), PCMCIA (Personal Computer Memory Card International Association), and various network interfaces such as Token Ring, Ethernet, Bluetooth, IEEE 802.11, or the like. Most of these interfaces require a fully configured and running operating system to provide access to the attached device(s) and/or network(s). That is, they are not recognized by the computer ROMBIOS as boot devices, and additionally are not natively supported as boot or system devices by the operating system. As such, data storage devices attached to the computer via these interfaces are a poor choice for use as backup devices for critical system files needed in the event of a computer crash, such as may be caused by a hard drive malfunction, virus infection or other problem that keeps the computer operating system (OS) from successfully running and providing access the to backup device.
The Microsoft Windows NT/2000/XP operating systems are documented as being able to use any hard drive as the boot or system drive; as long as the boot drive and system drives are accessible using one of two supported scenarios. In the first scenario all of the operating system files are placed on one or two hard drives that are accessible in real-mode using the computer's ROMBIOS interface. In this scenario the boot and system drives are either the same drive or two individual drives that are both accessible using the real-mode ROMBIOS interface. In the second scenario there is a boot drive that is accessible using the real-mode ROMBIOS interface and a system drive that is accessible using a SCSI miniport driver that has been placed in the root directory of the boot drive. These two scenarios restrict the system drive to a standard IDE or SCSI hard drive that is supported by the real-mode ROMBIOS or by a standard SCSI miniport driver, respectively. This restriction excludes using as a system drive many other storage devices that interface to the computer via USB, IEEE 1394, PCMCIA or other interfaces, as well as any other devices that are not natively supported as a system device by the operating system or ROMBIOS.
Manufacturers of detachable external computer storage devices based on such external interfaces must provide end users with disaster recovery software that will allow restoring an archived copy of the normal computer hard drive (i.e., a “back-up”) back to the hard drive in cases where the computer will not boot normally. Without this functionality, the usefulness of the external computer storage device would be very limited. Ideally the disaster recovery software provided by the device manufacturer would also allow the end user to first locate and recover any files existing on the primary computer hard drive that may have been created or updated at a time later than those stored on the external storage device.
Current disaster recovery methods that deal with restoring unbootable computer systems running a modern operating system—such as Windows NT, 2000, or XP—either require a re-installation of the original operating system on the normal computer system hard drive, or else providing a secondary, legacy-based operating system, such as a prior version of Windows, containing hardware specific device drivers, to provide access to the external storage device.
Re-installing the operating system is a daunting task for most users, and will often result in the loss of at least the data generated and stored on the system disk since the last back-up. Users will additionally need to locate and install device drivers and configuration software for any hardware added to the computer by the end-user.
Using a legacy-based operating system—such as MS-DOS and those versions of Microsoft Windows that were derived from MS-DOS, such as Windows 3x/9x/ME—is well known in the art. However, the use of legacy-based operating systems for disaster recovery presents several disadvantages. Use of the legacy operating system requires a separate license, thus increasing the price of the disaster recovery software. Many different hardware-specific, real-mode device drivers must be obtained and maintained to support the many different hardware interface chipsets, and there is no guarantee that legacy-based drivers will even be available as many external interface hardware manufacturers are no longer providing legacy drivers for their newer chipsets. Disaster recovery software requires a duplicate software development effort, to provide end users with maintenance tools that run under both the modern operating system such as Windows NT/2K/XP, as well as under the legacy operating system. Additionally, when running under a legacy-based operating system there is no native support for modern file systems, such as NTFS file system introduced with the Windows NT operating system in the early 1990s. Thus, it is difficult and sometimes impossible to access existing information on an NTFS partition during disaster recovery operations.
In all prior art, legacy operating system based disaster recovery systems, if the system drive becomes unusable, the computer is booted from a floppy drive or a CD-ROM that conforms to the “El Torito” format. The El Torito specification, published by Phoenix Technologies of Irvine Calif. and IBM of BocaRaton Fla., available at http://www.phoenix.com/resources/specs-cdrom.pdf and incorporated herein by reference, allows for one or more bootable hard or floppy disk “image” files on a CD-ROM, and concomitant alterations to the computer's ROMBIOS to support the CD-ROM as a bootable device.
Following an initial real-mode boot sequence from the floppy or El Torito CD-ROM, the legacy-based systems load hardware-specific real-mode drivers, and then switch to an external drive or RAM drive by substituting one of the standard operating system drive designators (such as C: or D:) for the drive designator associated with the external or RAM drive. This allows the operating system to continue to boot and run from the external or RAM drive. This system drive substitution occurs during the bootstrap phase of OS initialization, before the OS kernel and loadable device drivers (such as for example, a protected-mode OS kernel and protected-mode device drivers) have been loaded into memory and initialized. Hence the absolute necessity of the hardware-specific, real-mode device drivers to provide real-mode access to the desired drive during the bootstrap phase of OS initialization—drivers which, as previously discussed, may be difficult or impossible to obtain for all hardware devices.
In addition the deficiencies previously noted with such legacy systems, the prior art method of system drive selection during bootstrap phase (such as through drive designator redirection) will not work at all with modern operating systems such as Windows NT/2K/XP, that do not provide a reconfigurable real-mode bootstrap phase or support the use of real-mode legacy device drivers. Thus, an upgrade to the computer operating system could render its disaster recovery solution useless.